﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//-------------------------------------------------------------------------
using Interfaces.Consultorio;
using Interfaces.Loguin;
using Interfaces.Configuracion;
using ModeloEntidades;

namespace Interfaces
{
    public partial class UI_Principal : Form
    {
        enum LoguinEstados { logueado, no_logueado }
        //--------------------------------------------------------------------------------------     
        private Administrador elAdministrador_logueado;
        //--------------------------------------------------------------------------------------
        private LoguinEstados loguin_estado = LoguinEstados.no_logueado;
        private Boolean autologuin = false;

        public UI_Principal()
        {
            InitializeComponent();
        }

        public void Autologuin(){

            var loguin = LogicaControl.Controlador_Loguin.Instance;

            elAdministrador_logueado = loguin.iniciar_session("Fiscalizacion", "acattane", "colegio");

            inicio_session();
        }

        private void toolStripButtonConsultorioAlta_Click(object sender, EventArgs e)
        {
            UI_Consultorio ui = new UI_Consultorio(elAdministrador_logueado);
            ui.MdiParent = this;
            
            ui.Show();
        }

        private void toolStripButtonTramitesPendientes_Click(object sender, EventArgs e)
        {
            UI_TramiteLista ui = new UI_TramiteLista();
            ui.MdiParent = this;

            // Agrego manipulador de evento
            ui.cuandoSeleccionaUno += new UI_TramiteLista.seleccionado(tramite_en_curso_seleccionado);

            ui.Show();
        }

        private void tramite_en_curso_seleccionado(Tramite_Matriculacion unTramite_para_matricula)
        {
            UI_Consultorio ui = new UI_Consultorio(unTramite_para_matricula.Habilitacion);
            ui.MdiParent = this;
            
            ui.Show();
        }

       

        private void toolStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void button_alta_cancelar_Click(object sender, EventArgs e)
        {
            //this.ultima_UI_consultorio.Close();

        }

        private void UI_Principal_Load(object sender, EventArgs e)
        {
            // Si estoy en modo autologuin....
            if (autologuin)
            {
                Autologuin();
            }
            else
            {
                cerrar_session();
            }
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void iniciarSessionToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
        }
                

        private void administrador_logueado(Administrador unAdministrador)
        {
            this.elAdministrador_logueado = unAdministrador;

            inicio_session();            

            MessageBox.Show(this, "Bienvenido " + unAdministrador.nombre + ", que andes bien !!", "Inicio de session");
        }


        private void inicio_session()
        {
            session_control_estados(true);
        }

        private void cerrar_session()
        {
            session_control_estados(false);
        }

        private void session_control_estados(Boolean estado)
        {
            this.toolStrip.Enabled = estado;
            ToolStripMenuItem_iniciarSession.Enabled = !estado;
            ToolStripMenuItem_cerrarSession.Enabled = estado;
        }

        private void ToolStripMenuItem_iniciarSession_Click(object sender, EventArgs e)
        {
            UI_Loguin ui = new UI_Loguin();

            // Suscrivo a la evento...
            ui.cuandoLogueo += new UI_Loguin.logueado(this.administrador_logueado);
            ui.MdiParent = this;

            ui.Show();
        }

        private void ToolStripMenuItem_cerrarSession_Click_1(object sender, EventArgs e)
        {
            this.elAdministrador_logueado = null;
            //-----------------------------------------------
            cerrar_session();
        }

        private void configuracionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var ui = new UI_Configuracion();

            ui.MdiParent = this;

            ui.Show();
        }



      
    }
}